#include "cputest.h"

TEST(test0, \
	"l_%=: \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test01, \
	"l_%=: \n\t" \
	"nop \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test02, \
	"l_%=: \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test03, \
	"l_%=: \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"nop \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test1, \
	"l_%=: \n\t" \
	"movq %%mm0, %%mm1 \n\t" \
	"movq %%mm1, %%mm2 \n\t" \
	"movq %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test2, \
	"l_%=: \n\t" \
	"movq %%mm0, %%mm1 \n\t" \
	"movq %%mm0, %%mm2 \n\t" \
	"movq %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test3, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm1, %%mm2 \n\t" \
	"paddb %%mm2, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test4, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test5, \
	"l_%=: \n\t" \
	"movl %%eax, %%ebx \n\t" \
	"movl %%eax, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test6, \
	"l_%=: \n\t" \
	"movl %%eax, %%ebx \n\t" \
	"movl %%ebx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test7, \
	"l_%=: \n\t" \
	"addl %%eax, %%ebx \n\t" \
	"addl %%eax, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test8, \
	"l_%=: \n\t" \
	"addl %%eax, %%ebx \n\t" \
	"addl %%ebx, %%edx \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test9, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"movl %%eax, %%ebx \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"movl %%eax, %%edx \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test10, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pinsrw $0, %%eax, %%mm1 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"pinsrw $0, %%eax, %%mm2 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"pinsrw $0, %%eax, %%mm3 \n\t" \
	"loop l_%= \n\t" \
     )

TEST(test11, \
	"l_%=: \n\t" \
	"paddb %%mm0, %%mm1 \n\t" \
	"pinsrw $0, %%eax, %%mm4 \n\t" \
	"paddb %%mm0, %%mm2 \n\t" \
	"pinsrw $0, %%eax, %%mm4 \n\t" \
	"paddb %%mm0, %%mm3 \n\t" \
	"pinsrw $0, %%eax, %%mm4 \n\t" \
	"loop l_%= \n\t" \
     )
test0: 2.025057
test01: 3.037443
test02: 4.050164
test03: 5.064398
test1: 5.066808
test2: 5.066837
test3: 6.079393
test4: 6.079219
test5: 4.050112
test6: 4.050199
test7: 4.050205
test8: 4.050045
test9: 7.093337
test10: 15.247488
test11: 18.245207
